package com.ktjiaoyu.server.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ktjiaoyu.server.pojo.AdminRoleVo;
import com.ktjiaoyu.server.pojo.Menu;
import com.ktjiaoyu.server.pojo.Role;
import com.ktjiaoyu.server.pojo.RoleMenuVo;

import java.util.List;

/**
 * <p>
 *  角色模块的业务接口类1
 * </p>
 *
 * @author jieGe
 * @since 2022-05-19
 */
public interface IRoleService extends IService<Role> {
        //查询角色列表信息
    public List<Role> roleList();

    //为用户分配多个角色时,需要住t_admin_role表中插入数据
    public boolean batchInsertAdminRole(AdminRoleVo vo);

    //通过操作员ID查询其拥有的角色列表权限
    public AdminRoleVo getAdminRoleList(Integer adminId);

    //查询t_role角色表的分页列表信息
    public IPage<Role> selectByPage(Page<Role> page, String query, String sort);

    // 根据角色ID删除对应的权限,将当前角色最新的权限列表进行返回
    public List<Menu> delMenuByRoleId(Integer roleId, Integer menuId);

    // 保存角色信息
    public boolean saveRole(Role role);

    // 保存修改后的角色信息
    boolean updateRole(Role role);

    // 为角色分配多个权限时，需要往t_menu_role表中插入数据
    public boolean batchInsertRoleMenu(RoleMenuVo vo);

    // 通过角色ID删除角色信息
    boolean delRoleById(Integer roleId);
}
